From f20bac21ea37991c1a1110e78846897a406932f0 Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@redhat.com>
Date: Tue, 5 Jul 2022 08:23:12 -0500
Subject: [PATCH] Revert "Merge r295034 - WebKitTestRunner shouldn't link
 object files of JavaScriptCore and WebCore"

This reverts commit 7916fda00b347ff263fbfe72c065032d1d9b523c.
---
 Source/JavaScriptCore/CMakeLists.txt     | 12 +++++++++---
 Tools/WebKitTestRunner/CMakeLists.txt    |  1 -
 Tools/WebKitTestRunner/PlatformGTK.cmake |  4 ++++
 Tools/WebKitTestRunner/PlatformWin.cmake |  4 ++++
 4 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt
index 95a1300ce1b3..238208eb1137 100644
--- a/Source/JavaScriptCore/CMakeLists.txt
+++ b/Source/JavaScriptCore/CMakeLists.txt
@@ -456,7 +456,7 @@ if (MSVC AND NOT ENABLE_C_LOOP)
         COMMAND ${MASM_EXECUTABLE} ${LLINT_MASM_FLAGS} ${JavaScriptCore_DERIVED_SOURCES_DIR}/LowLevelInterpreterWin.obj ${JavaScriptCore_DERIVED_SOURCES_DIR}/LowLevelInterpreterWin.asm
         VERBATIM)
     list(APPEND JavaScriptCore_SOURCES ${JavaScriptCore_DERIVED_SOURCES_DIR}/LowLevelInterpreterWin.obj)
-    add_library(LowLevelInterpreterLib STATIC llint/LowLevelInterpreter.cpp)
+    add_library(LowLevelInterpreterLib OBJECT llint/LowLevelInterpreter.cpp)
 else ()
     # As there's poor toolchain support for using `.file` directives in
     # inline asm (i.e. there's no way to avoid clashes with the `.file`
@@ -465,7 +465,7 @@ else ()
     # an object file. We only need to do this for LowLevelInterpreter.cpp
     # and cmake doesn't allow us to introduce a compiler wrapper for a
     # single source file, so we need to create a separate target for it.
-    add_library(LowLevelInterpreterLib STATIC llint/LowLevelInterpreter.cpp
+    add_library(LowLevelInterpreterLib OBJECT llint/LowLevelInterpreter.cpp
         ${JavaScriptCore_DERIVED_SOURCES_DIR}/${LLIntOutput})
 endif ()
 
@@ -1496,7 +1496,13 @@ if (CMAKE_COMPILER_IS_GNUCXX AND GCC_OFFLINEASM_SOURCE_MAP)
         COMPILE_OPTIONS "-fno-lto")
 endif ()
 
-list(APPEND JavaScriptCore_PRIVATE_LIBRARIES LowLevelInterpreterLib)
+# When building JavaScriptCore as an object library, we need to make sure the
+# lowlevelinterpreter lib objects get propogated.
+if (${JavaScriptCore_LIBRARY_TYPE} STREQUAL "OBJECT")
+    list(APPEND JavaScriptCore_PRIVATE_LIBRARIES $<TARGET_OBJECTS:LowLevelInterpreterLib>)
+else ()
+    list(APPEND JavaScriptCore_SOURCES $<TARGET_OBJECTS:LowLevelInterpreterLib>)
+endif ()
 
 WEBKIT_COMPUTE_SOURCES(JavaScriptCore)
 list(APPEND JavaScriptCore_SOURCES
-- 
2.36.1

